package com.demo.controller;


import com.demo.common.annotation.LogDemo;
import com.demo.common.vo.Result;
import com.demo.entity.User;
import com.demo.service.UserService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * 一般用HTTP Status来表示请求的状态,主要看请求是否成功，Json返回的则用来表示业务需求的状态
 */
@RestController
//@LogDemo("我是类上的日志注解")//加在类上的切面需要配合within
public class UserController {
    @Resource
    private UserService userService;

    @RequestMapping("/user")
    @LogDemo("我是方法上的日志注解")//加在方法上的可以使用annotation
    public Result<User> getUserById(Long id) {
        return Result.success(userService.getUserById(id));
    }

    /**
     * 用来测试aop中通知的顺序
     * @return String
     */
    @RequestMapping("/test")
    public String test() {
//        int i = 1 / 0;
        return "Hello World";
    }

    @RequestMapping("exception")
    public String exception() {
        int i = 1 / 0;
        return "exception";
    }



}
